ปัญหา ความหลากหลายของผู้ผลิต เป็นการแบ่งแยกเชิงยุทธศาสตร์และทางเทคนิคในด้านคอมพิวเตอร์ประสิทธิภาพสูง (HPC) ซึ่งเป็นที่มาของการใช้ซอฟต์แวร์เพียงหนึ่งเดียวเป็นเวลานานกว่าทศวรรษ แต่การเกิดขึ้นของฮาร์ดแวร์ระดับเอ็กซาสเคลที่แข่งขันกัน เช่น Frontier และ El Capitan (AMD) พร้อมกับการใช้งานแบบดั้งเดิมของ NVIDIA ได้บังคับให้เกิด "การแยกสายพัฒนา"
1. ความไม่สม่ำเสมอของฮาร์ดแวร์ และ โครงสร้างแยกประเภท
นักพัฒนาเผชิญกับผลกระทบจากการแยกประเภทผู้ผลิต ซึ่งโค้ดจะไม่สามารถทำงานร่วมกันได้ทั้งในด้านกายภาพและตรรกะระหว่างสถาปัตยกรรมต่าง ๆ การเลือกใช้ API แบบเฉพาะเจาะจงจากผู้ผลิตจะนำไปสู่ การผูกพันกับผู้ผลิตจำเป็นต้องเพิ่มเวลาบำรุงรักษารวมถึงสองเท่า เพื่อรองรับระบบคลัสเตอร์ที่มีความหลากหลาย
2. การแตกแยกของระบบนิเวศ
ระบบถูกกำหนดโดยตัวแปรสภาพแวดล้อมที่ไม่สามารถใช้ร่วมกันได้ ซึ่งทำให้เกิดความขัดแย้งในระบบการสร้างซอฟต์แวร์:
CUDA_PATH: ไดเรกทอรีหลักสำหรับเครื่องมือของ NVIDIAHSA_PATH: ตำแหน่งของสถาปัตยกรรมระบบแบบผสมผสานสำหรับระบบ ROCm ของ AMD
3. ภาระในการบำรุงรักษาระบบ
การนำโค้ดเดิมไปใช้ใหม่โดยทั่วไปต้องมีการเขียนใหม่ทั้งหมดทั้งในส่วนของเคอร์เนลและการจัดการหน่วยความจำ หากไม่มีชั้นที่สามารถย้ายไปใช้ได้ โค้ดรองจะต้องเผชิญกับ การเสื่อมสภาพของโค้ด (bit rot) เมื่อความก้าวหน้าหยุดชะงัก ขณะที่วิศวกรกำลังพยายามจัดการกับการคอมไพล์ตามเงื่อนไข